It seems like you are going about this the wrong way.
Linear interpolation is the process of transitioning from one value to a second value, which is exactly what you are looking for with your movement.
I'm unaware of java and libgdx syntax, but here's some example code so you get the idea.
Here's what you need:
Vector2 CurrentPosition : Your characters current position.
Vector2 StartingPosition : Your characters original position.
Vector2 EndPosition : Your characters desired position.
float timeSinceStart : The amount of time that has passed since beginning the transition.
int time : How long you want the transition to take in milliseconds.
To lerp, just do this every frame:
timeSinceStart += deltaTime; //Elapsed time since last frame
var delta = Clamp(time / timeSinceStart, 0, 1);
CurrentPosition = Lerp(StartingPosition, EndPosition, delta);
//Or possibly CurrentPosition = StartingPosition.lerp(EndPosition, delta) if that's the syntax.
First it adds the elapsed game time (delta time) to
timeSinceStart to keep track of how much time has passed.
Then it creates the
delta variable which is used to lerp between the start and end positions. The
Clamp method is used to keep the value within 0 and 1. If delta is at 0 it means that no time has passed and the characters position should be at the starting position. If delta is at 1 it means that the amount of time that has passed is equal to how long we wanted it to take our character to move, and so our character will be at the end position.
Then it lerps between the start and end positions using the delta.
To check if your player has reached his target position, you simply check if
delta == 1