That will stop the loop until another key is pressed. SLEEP does not take the keypress out of the buffer. Then you can just use one MOVE = MOVE + 1 per keypress. You don't need it in each different CASE then.
Also you can just print a space over the old position before you make a CASE move. It won't place the new print until it loops to the top.
CASE CHR$(0) + CHR$(80): LOCATE XPOS, YPOS: PRINT " ";
IF XPOS >= 1 AND XPOS < 25 THEN XPOS = XPOS + 1
Place a semicolon after each print to prevent screenroll.