A number of people have suggested this and I've now looked into the question a bit.
Curiously, the comparisons I've seen between RK4 and symplectic integrators all use fixed step sizes. I used RK4 with adaptive step size because I had the code around, having written it for a different project about ten years ago that involved mostly smooth motion with a few tight turns that required a very small time step. By making the step size adaptive I could get decent run-time performance while retaining good accuracy.
I'm tempted now to write a symplectic integrator and see how it performs against adaptive RK4.
It may be better to use a symplectic integrator.