Assuming these represent attitude rotations from one coordinate frame to another, if you are simply asking what is the minimum rotation to take you from one quaternion to the other, you simply multiply one quaternion by the conjugate of the other and then pick off the rotation angle of the resulting quaternion.
But we really need to know what these quaternions represent, and what angle you are trying to recover, before we know what you want.
E.g., suppose x and y represent ECI->BODY rotation quaternions, and you want to know the minimum rotation angle that would take you from the x BODY position to the y BODY position. Then you could do this:
>> x = [ 0.968, 0.008, -0.008, 0.252]; x = x/norm(x);
>> y = [ 0.382, 0.605, 0.413, 0.563]; y = y/norm(y);
>> z = quatmultiply(quatconj(x),y)
0.5132 0.6911 0.2549 0.4405
>> a = 2*acosd(z(4))
But, again, these calculations are dependent on how I have the quaternions defined. Your specific case may be different.