Here is an outline of the type of code I would use:
mySpriteX = 0
mySpriteSpeedX = 0
mySpriteAccelerationX = 0.1
repeat
if GetPointerPressed() and mySpriteSpeedX < 4 then inc mySpriteSpeedX,mySpriteAccelerationX
inc mySpriteX,mySpriteSpeedX
SetSpriteX(mySpriteID,mySpriteSpeedX)
Sync()
until gameIsOver
This is only in one dimension and there is no slowing down, the sprite will disappear off the right edge of the screen.
The actual numbers that will look good will depend on the frames per second.
The value of mySpriteAccelerationX sets how fast the sprite speeds up, but it will never travel faster than 4 pixels per frame from a standing start.
Similar ideas can be expanded to handle movement with a y component, but once you have diagonal movement the code becomes more complicated as there needs to be a calculation of the distance between the start and destination, if you need to ensure that the total speed remains no more than 4.