In order to see that David Roberts' and Alex Suciu's comments give a complete classification of homotopy classes of maps $S^1\times S^1\to SO(3)$, one needs to further observe that every map from the 1-skeleton of the torus extends uniquely (up to homotopy) to the torus. Then the above comments describe all four homotopy classes of maps on the 1-skeleton (which is just a wedge of two circles). 

Now, let $\alpha: S^1 \to S^1 \vee S^1$ be the attaching map for the 2-cell of the torus. A map $f: S^1 \vee S^1\to SO(3)$ extends to the torus if and only if the composite $f\circ \alpha$ is nullhomotopic. But $\alpha$ is just the commutator of the two generating loops in $S^1 \vee S^1$, and since $\pi_1 (SO(3)) = \mathbb{Z}/2$ is abelian, $f\circ \alpha$ must be nullhomotopic (as it's a commutator). Finally, uniqueness of the extension follows from the fact that $\pi_2 (SO(3)) \cong \pi_2 (S^3) = 0$, because two different extensions paste together to give a map out of $S^2$. Note that the first isomorphism here is seen most easily as a consequence of the fact that $S^3 \cong SU(2)$ is a double-cover of $SO(3)$, and covering maps induce isomorphisms on higher homotopy groups.

Note that if $G$ is a Lie group, then the same reasoning gives a description of $[M^g, G]$ (where $M^g$ is a genus $g$ surface and $[-,-]$ means homotopy classes of maps) because the fundamental group of a topological group is always abelian, and the second homotopy group of a Lie group is always trivial. Specifically, there are $2^{2g}$ homotopy classes, determined by their restrictions to the 1-skeleton.