If you are using the BodyPosition stuff then rotation and position should both be interpolated and both be smooth. However, maybe you need to give more bits to the Quaternions that are transmitted. It could be that the quantization is visible at the scales you are using or something.
The 20 times a second thing shouldn’t matter if everything is working right. You are viewing history and those 20 times a second messages should each have about three frames of history data ahead of what you are viewing.
So either you are constantly “topping out” on history (back delay not high enough) or the compression of the Quaternions is removing smoothness that you will need.
Given the number of objects you plan to have, increasing the bit counts should not drastically affect your final bandwidth, I guess.