Depends a lot on how you wrote the input handling and since you didn't provide any code, I can't really point out how to improve it.
You don't want to apply the input directly to movement, but you want to track the key change and only move a piece, if it's not already moving and the input is actually valid for moving.
Depending on how you want to move between the grid cells, you may need to write some code that moves a piece over some time from cell X to cell Y. This would be a purely mathematical movement and the input wouldn't be calculated into it, once it's moving.