Hairball - I think you will have got the idea by now - but - the computer is not the slightest bit interested in what units or measurement you are working in - inches, feet, degrees, radians, etc.
All it wants to know is - when you put in a command (say starting from 0,0) g0 x1 to move the x axis by one unit, how many pulses must it put out to the motor to move the axis the required distance. This works identically on all the axis - how many pulses does the computer put out to move the axis by one unit.
Clearly - when writing G code, YOU must then know what units you are talking about and always use the same units.
The computer assumes you are going to program the machine in inches or millimeters (but you could use finger widths if you wanted) and asks for this first - but the computer is not bothered. All it needs to know this for is when it converts from g20 to g21 and back, for altering all the offsets. (As pointed out, it does not alter rotary axis)
For a rotary axis you could program it in any measurement you liked - for example, running a rotary table, on a job which required a similar machining at 10 degree intervals, you might program the computer to put out the correct number of pulses to move the table 10 degrees at a time (remembering in the G Code that 10 degrees is 1 unit) and instead of using g0a36, use g0 a1 etc.
So what you need to do is work out the drive to your axis. How many steps per revolution of the motor (a) how many revs of the motor per 1 unit moved (b) and the number of steps per unit is (a*b)