Step response overshoot in IIR filters
If we have a second-order discrete-time system with complex conjugate poles at $z_{\infty}=re^{\pm j\theta}$, $0&lt;r&lt;1$, $0&lt;\theta&lt;\pi$ (i.e. with poles inside the unit circle and no poles on the real axis), then we have a transfer function

$$H(z)=\frac{1}{1-2r\cos \theta z^{-1} + r^2z^{-2}}$$

For the moment we assume there are no zeros away from the origin of the $z$-plane. The step response of such a system is given by

$$a(n)=\frac{1}{1-2r\cos \theta + r^2}\left [1+
\frac{r^{n+2}\sin[\theta(n+1)] - r^{n+1}\sin[\theta(n+2)] }{\sin\theta} \right ]\sigma(n) =$$
$$=a_{\infty}[1+d(n)]\sigma(n)\tag{1}$$

where $\sigma(n)$ is the Heaviside step function, $a_{\infty}$ is the value of the step response for $n\rightarrow\infty$, and $d(n)$ corresponds to the ringing of the step response. Consequently, the maximum overshoot of $a(n)$ corresponds to the maximum of $d(n)$. You could try with Mathematica to see if there is an analytic solution for the (largest local) maximum of $d(n)$.

If the system has zeros away from the origin of the $z$-plane, then $H(z)$ has a numerator polynomal $b_0+b_1z^{-1}+b_2z^{-2}$:

$$H(z)=\frac{b_0+b_1z^{-1}+b_2z^{-2}}{1-2r\cos \theta z^{-1} + r^2z^{-2}}$$

In this case the formula for the step response given by (1) still holds with
$$a^{\prime}_{\infty}=a_{\infty}\sum_kb_k$$ and with

$$d^{\prime}(n)=\frac{(d*b)(n)}{\sum_kb_k}=\frac{b_0d(n)+b_1d(n-1)+b_2d(n-2)}{\sum_kb_k}$$

It may be even more difficult to find an analytic solution for the maximum of $d^{\prime}(n)$.

So unfortunately I cannot give a plug-and-play formula for the maximum overshoot, but my intent was to give you some analytical results to experiment with, either with Mathematica, or by using some very simple numerical search strategies.

If everything else fails (Mathematica etc.), I would simply compute $a_{\infty}$ by

$$a_{\infty}=\frac{b_0+b_1+b_2}{1+a_1+a_2}$$

and then actually compute the filter output (e.g. with Matlab's $\tt{filter}$ function), feeding the filter with a step, until you have found the first maximum of the output signal $a_{max}$. The overshoot is then given by $\frac{a_{max}}{a_{\infty}}$. But this may be obvious to you anyway.