Those steppers are mass produced for duct/vent control, and the gear ratios can vary. Some of them do not lead to a precise number of steps per revolution. Here is one example, but you have to check your particular motor to see if it conforms: In-Depth: Control 28BYJ-48 Stepper Motor with ULN2003 Driver & Arduino
Example of a pan-tilt tracker and heliostat, using a 28BYJ for the azimuth: GitHub - jremington/Arduino_heliostat: Model alt/az heliostat using Arduino
I'm surprised if this works, as the result of integer division is zero. If it does, the compiler is smart enough to understand that a floating point constant is required here:
const float stepresolution = 360 / 2038 ; // Resolution of the 2 stepper motors 28BYJ-48.