I don't think that gp_Quaternion::GetRotationAngle() is of any use to you - at least in the way how you're trying to interprete it.
Quaternion is a compact representation of 3D rotation defined by 4 values, and you cannot expect that a single value may adequately reflect it's definition for arbitrary rotations.
The rotations could be defined in many ways. One of the popular option is a triplet of Euler angles in user interface, which you may get via gp_Quaternion::GetEulerAngles() method.
In case if you want to display an exact rotation angle during AIS_Manipulator rotation operation, than you will need to take an active rotation axis from it and calculate rotation progress within this particular axis (but this will be only local rotation angle).