changing angular data to remove the sharp changes
Could you do something like: (1/2)*unwrap(2*theta)?

edit:
More concretely, I think about this. I would think that the numerical example and asserts are sufficient to see if it can be adapted to your situation.

It is standard usage of the unwrap() function to replace large jumps with the "phase alias" that cause the smallest jump in phase, applied to a 2-d input. As unwrap expects radians rather than degrees, I have to convert back and forth, and as your phase "aliases" at 180 degrees rather than 360, I am scaling by 2 and 1/2.

th = repmat([70 80 -90 -80], 2, 1)
th =

70    80   -90   -80
70    80   -90   -80

th2 = 2*th;
deg_to_rad = 2*pi/360;
th_unwrapped = (1/deg_to_rad)*((1/2)*unwrap(th2*deg_to_rad, [], 2))
th_unwrapped =

70    80   90   100
70    80   90   100
assert(all(rem(th-th_unwrapped, 180)==0, [1 2]))
assert(all(diff(th_unwrapped, [], 2)==10, [1 2]))