You say,
Then why can't we track [the angles] for first ten seconds and then keep subtracting the present angles from initially calculated angles for every ten seconds during movement?
You can't subtract angles from a gyroscope reading because the gyroscope measures angular velocity. This is kind of like asking why you can't subtract your odometer reading in your car from your speedometer - you're talking about a distance and a speed. Well, an angle is an angular position or an angular distance, and again, the gyroscope measures an angular speed.
You can "calibrate" a gyroscope by controlling its speed (generally ensuring it's stationary) and measuring the output. Then you average the output and offset it such that it reads the known speed (again, this usually means averaging and subtracting whatever that average is from future readings).
The problem you'll have with trying to do this continuously is that the actual (physical) input to the gyroscope is probably not zero-mean. So, if you average the angular speed (angular velocity, angular rate, etc.) over some period of time, you don't have a good way of separating the actual input signal from the bias ("offset") of the gyroscope.
For example, if you read an average angular speed of 1.5 deg/s for 10 seconds, is that reading correct, or is it actually 1 deg/s and a bias of +0.5 deg/s, or is it actually 2 deg/s and a bias of -0.5 deg/s?
Here's the problematic part of what you're doing - when you take that average and subtract it from all future readings, you are mathematically stating that the gyroscope is, on average, stationary for that 10 second interval because the very next sample you get that says it's rotating at 1.5 deg/s, you're going to subtract the running average from that and get (1.5-1.5) = 0 deg/s.
The only way you can do what you're talking about - averaging angular speed and using that to correct future samples - is to know that the device will be "stationary" over the average of whatever your sampling interval is.
What you might be able to do is to take multiple units, and average their output, use that average as truth, and then conclude that the bias is the difference between the individual unit's reading and the averaged output.
So, if you had two units, and one read 1.5 deg/s averaged over 10 seconds, and the other read 2.0 deg/s averaged over the same interval, then you could say that the "true" motion was 1.75 deg/s, and the first unit has a bias offset of -0.25 deg/s and the second has a bias offset of +0.25 deg/s.
The more units you get, the better your results will be. It would of course be extremely important that the units are all rigidly coupled; any significant flexing of the substrate between sensors would ruin your data.