Is it on FixedUpdate? Maybe try moving it to Update. But I also have it on FixedUpdate, so I've no idea.
If the velocity is set to 0 on an else statement, what's the if statement? Like, if(input > 0){ make it move }or something? If that's the case, if input is 0.1 it'd still move at full speed, that also might be it.