I solved one problem. I did not re-use the new velocity and position vectors. It comes down to this:
r=[x,y,z]
R=sqrt(r.r)
v=[vx,vy,vz]
V=sqrt(v.v)
a=distance/R
loop(
r1=cos(a)*r+sin(a)*R*(v/V)
v=-sin(a)*V*(r/R)+cos(a)*v
r=r1
)
Now the object moves smoothly along a great...