Im not sure if this is what your after, or what you mean by choppy but in platformers I generally add an element of acceleration/deceleration to lessen the binary feel of movement ( i.e. moving at constant speeds and stopping instantaneously)
It goes a little something like this
if ( key left is pressed and not key left is pressed )
velocity -= acceleration factor
else if ( velocity < 0 )
velocity += deceleration factor
if ( velocity > 0 )
velocity = 0
// ^ same for the right key only in the opposite direction
// ...
player x position += clamp( velocity, -4, 4 )
the acceleration does not have to be too slow, infact even a quick acceleration ( reaching max speed in a few frames ) helps, but that depends on your taste for the game.