"micro stepper motor" and "0-180" doesn't make sense. "0-180" relates to a servo motor, so what is it.
Using an array for that also doesn't make sense. Please explain.
531-840 is only 310 values, so why that small range. What voltage.
Converting (downscaling) that to 0-180 (181 values) with map should be ok, and that resolution is more than enough for a hobby servo.
If you want to use that full voltage range, then write to the servo with writeMicroseconds().