I have another idea:

What about giving each status from a spell a certain armor value that needs to be achieved in order for the status to be successfully applied? Right now this value is 0 but imagine if it were different for each status.

Example: Casting ability X which cause stun has a armour value of 15. If the armor of the enemy is higher than 15 it will fail but if it is lower than 15 it will succeed. This way you dont have to bring the armor down to 0 and the more powerful the spell/ability it is, the higher the armour value.