Linear Actuator Position Control Reed Sensor

Do you know that the currentPosition variable is being updated properly, i.e. that the pulses are being registered? Do you see the appropriate activity on your serial monitor showing the pulses?

Also, your debounce code looks faulty. Consider what happens when your debounce code skips the first half of a bounce but records the second half due to timing coincidence.

A possibly much bigger problem is that you are writing to Serial from inside an interrupt handler! This is a huge no-no and can cause corruption within the serial driver and/or elsewhere. Your interrupt handler should ONLY debounce the signal and make changes to the currentPosition variable. For change detection, debugging, etc, you have an oldPosition variable that you compare with currentPosition inside loop() and if they differ, you do stuff like Serial.print (and relay output actions) there before overwriting oldPosition with currentPosition.