The positive or negative % change you see after a progress update is related to your start and target values.
For example, say you have a Key Result with a start value of 12.4% with 16% as the target, and another with a start value of 9.5 with a target of 12.
For the first, the distance to travel is 3.6 (16-12.4). The update has moved .15. So, .15/3.6 = moved away 4.2%.
For the second, the distance to travel is 2.5 (12-9.5). The update has moved .01. So, .01/2.5 = moved closer .4%.