BLDC motor getting jerks while running through PWM from arduino

I am using E-bike controller to run and control the speed of my BLDC motor. To control the speed I am giving PWM signals from arduino to the throttle pin of E-bike controller, it runs perfectly on 255 PWM but as I start reducing the PWM then it starts giving jerks. The speed becomes slower but jerking makes it impossible to be used in my project which is a humanoid robot and requires smooth running of the motors. If anyone knows its reasons or the solution then please tell me......

Perhaps the input pin of the E-bike controller is not expecting a PWM signal?
The throttle on the E-Bike is likely a potentiometer that provides a smooth voltage.

Edit: I am largely guessing, but maybe you need a digital potentiometer