You will want to implement some basic velocity and acceleration physics. Rather than letting the character move at a set speed when you press a key, have a variable called velX and velY for the character. Tell your character to move velX distance left/right every tick, and velY distance up/down every tick. When you press up, increase the vely by a little every tick, and when you press down, decrease it by a little every tick. Same for left and right on velX. Then lower both velocities by about 10% every tick to get natural deacceleration. This will make him slid around, and accelerate smoothly.
you can multiply the acceleration numbers by a speed variable to change how fast he is.
Tweak the numbers how you see fit.