I'm having the same problem when using the Adafruit_PWMServoDriver library (did not try the direct connection from arduino to servo, only through the PWM shield).
As a workaroud I'm using this approach:
- I'm having a function which moves a certain servo to a degrees position by transforming the degrees parameter into pulseLenght
- Depending on the speed of the servo I'm calculating the time needed to finish the move and then I'm setting the pulseLenght to 0, which acts like a power-off for the servo and the jitters stops immediately:
pwm.setPWM(servoNum, 0, 0);
This works great, although I'm not sure if it's a correct approach. The only issue is that by waiting until the move is finished, the code is not async anymore and, for example, another servo can't move in the same time. A possible solution would be to registers a sort of async timer when the move starts and call the "turn-off" logic once the time ends.
No idea yet if and how this would be possible