In games with movement and velocity, you either need to store position and velocity OR current position and previous position. (The latter is used in something called Verlet integration.) So, the simple answer, is that when you update currentPosition, first copy it into lastPosition. You can then measure velocity.
struct Guy {
sf::Vector2f currentPosition, lastPosition;
};