1. You need to reference the machine using good limit switches.
2. You need to put lots of M1's in the code so you can pause program at the end of a z up move. Write down the line number when you pause it. If you are using subroutines, make sure the M1 is in the main part of the program.
3. When you turn on machine again, reference it.
4. Load the program.
5. Scroll through to the the line where you paused.
6. Click 'run from here', and follow prompts.
If you are using loop counters in the program, starting from a run from here is often a problem because you can't restore the original machine (PC) state.
note: You need to reference the machine, because if you are using microstepping drivers then it almost certainly be somewhere between steps.
After turning on and referencing the machine, you must be able to reliably get to the same start position.
Even a temperature change can make limit switches start in a slightly different position.
Easiest is to have a reference hole drilled in the job and see that it hasn't 'moved'.