csabizalan I was going to suggest very similar solution.
Woebot You can create a job exactly as csabizalan suggested and use it as a storage of positions which you can call from your main job with a parameter pointing to the step# with position you are interested.
Let me use csabizalan's example:
//name:PointJob
0000 NOP
0001 Jump *LABEL
0002
0003 0001 MOVJ VJ=100.00 PL=0
0004
0005 *LABEL
0006 GETARG LI000 IARG#(1) //Store first argument to first local integer variable
0007 GETPOS LPX000 STEP#(LI000)
0008 CNVRT PX000 LPX000 UF#(1) TL#(1) //You can use local variable instead of (1) and control with call parameters: 2 and 3
0009 END
From the top bar turn on display step number for better visibility. You can have up to 999 steps.
Create at least one local Integer variable to make GETARG# instruction available in the Instruction List and to store the call parameter.
Store your positions between Jump*LABEL and *LABEL, (I suggest to turn on line comment for each point).
Create main job where you will call PointsJob.jbl from:
Switch I000 (or Alias)
CASE 1
SET LI000 1
CASE 2
SET LI000 2 //Step# were the point is stored
SET LI001 1 //UF# for converting to
...
DEFAULT
MSG: Something went wrong, mate!
PAUSE
ENDSWITCH
CALL JOB: PointJob (LI000) or CALL JOB: PointJob (LI000,LI001) //You can use up to 8 arguments.
Unfortunately, the number of steps and they order must be under strict control and can not be removed without messing steps with higher numbers. To make life easier I suggest to use as step 1 HOME position and use 1 as call argument set in CASE which point you want to delete.