You do not need AC to prove the result because you can explicitly define an enumeration of the algebraic numbers within ZF. To do so, we start with any of the standard enumerations of the set $\bigcup_{n \in \omega} (\omega \times \mathbb{Z}^{n+1})$. This set consists of all sequences of the form $(k, a_0, \ldots, a_n)$ where $k \in \omega$ and $(a_0, \ldots, a_n)$ is a nonempty tuple of integers. We will use this as a starting point to define an enumeration of the algebraic numbers.
First, suppose that $w, z$ are two roots of the same nonzero polynomial $p(x) \in \mathbb{Z}[x]$. Say that $w <_{p(x)} z$ if either $|w| < |z|$ or else if $|w| = |z|$ and $\operatorname{arg}(w) < \operatorname{arg}(z)$. So $<_{p(x)}$ is a well ordering of the finite set of roots of $p(x)$ for every nonzero $p(x) \in \mathbb{Z}[x]$, and this ordering is uniformly definable with the tuple of coefficients of $p(x)$ as a parameter.
We form an enumeration of the algebraic numbers as follows. Say that a finite tuple of integers $(k, a_0, \ldots, a_n)$ represents a complex number $w$ if $w$ is a root of $p(x) = a_0 + a_1 x + \cdots + a_n x^n$, and $p(x)$ is not identically zero, and $k \in \omega$, and there are exactly $k$ other roots $z$ of $p(x)$ with $z <_{p(x)} w$. The relation "$(k, a_0, \ldots, a_{n})$ represents $w$" is definable in ZF, and ZF proves that for every algebraic $z$ there is at least one tuple that represents $z$, and every complex number that is represented is algebraic. Therefore, we can enumerate the algebraic numbers in the same order that they are represented by tuples, using the enumeration of the tuples from above.
Thus ZF proves that there is a surjection from $\omega$ to the set of algebraic numbers. Because $\omega$ is well ordered already, ZF can turn this into a bijection $f$ from $\omega$ to the set of algebraic numbers (namely, $f(n)$ is the $n$th distinct algebraic number to appear in the enumeration). Hence ZF can prove the set of algebraic numbers is countable.