You could interpolate between the curren't angle and the wanted angle.
If you want to do it with vector3d, the class has the function getInterpolated, where d should be (time since rotation start) / (time rotation should take)
The shorter direction thing, the other way is abs(angle-target) and the other way is 360-abs(angle-target)