The PWM frequency should be selected so that it does not create too much current ripple in the motor windings. Current ripple results in heating of the motor. If you know the terminal inductance L and the terminal resistance R of the motor, you can calculate the electrical time constant of the motor (t = L/R). With the time constant, t , calculated you should make the PWM frequency (much) higher than 1/t [Hz]. Good servomotors can have time constants as low as 50 to 150 microseconds, requiring PWM frequencies up to 40 kHz to 60 kHz.
For controlling the motor speed (or position) efficiently, you must have a good closed-loop control of the motor speed and torque (current). Good commercial controllers have the speed (or position) control circuits clocked at 1 kHz. For a dynamic reaction of the motor, the torque required for the correction of speed (or position) must be reached as quickly as possible. Therefore the current controller is clocked approximately ten times faster (10 kHz).
The accuracy of the entire system depends on the accuracy of the sensors and the quality of the control algorithm.