$\newcommand{\Zobr}[3]{#1 \colon #2 \to #3}$I will try to add an "elementary" proof - not needing anything beyond the first course in general topology.
We will consider $(S^1,\cdot)$ as $([0,1),\oplus)$ where $\oplus$ is the addition modulo $1$.
Let $\Zobr f{[0,1)}{[0,1)}$ be any continuous homomorphism.
First notice that $f(x)=0 \qquad \Rightarrow \qquad f(n\times x)=0. \tag{1}$
We will consider several cases:
First suppose that $\operatorname{Ker} f=\{0\}$, which means that $f$ is an injective map.
Since $\frac12\oplus\frac12=0$, we see that $f(\frac12)\oplus f(\frac12)=0$, hence $f(\frac12)\in\{0,\frac12\}$. Since $f$ is injective, the only possibility is $f\left(\frac12\right)=\frac12.$
What about $\frac14$? We have $f(\frac14)\oplus f(\frac14)=\frac12$. We have again two possibilities: $f(\frac14)\in\{\frac14,\frac34\}$. Now the possibility $f(\frac14)=\frac34$ would contradict to injectivity, since by intermediate value theorem we would have $x\in(0,1/4)$ such that $f(x)=\frac12$. So we have $f\left(\frac14\right)=\frac14.$
By repeating of this argument we get $f\left(\frac1{2^n}\right)=\frac1{2^n}$ and, using (1), we get $f\left(\frac{k}{2^n}\right)=\frac{k}{2^n}.$ Since $\{\frac{k}{2^n}; k,n\in\mathbb N\}$ is dense in $[0,1)$ and $f$ is continuous, we get that $f$ is the identity map.
Now suppose that $\operatorname{Ker} f\ne\{0\}$, i.e., there exists a non-zero $x$ with $f(x)=0$. Let us denote $x_0=\inf \{x\in(0,1); f(x)=0\}.$ By continuity $f(x_0)=0$.
We show that $x_0=0$ implies that $f\equiv0$. Suppose that there is a point such that $f(x)\ne 0$. Then there exists an $\varepsilon>0$ such that such that $f(y)\ne 0$ for each $y\in(x-\varepsilon,x+\varepsilon)$. Since $\inf \{x\in(0,1); f(x)=0\}=0$ there exists $x_1\in(0,\varepsilon)$ such that $f(x_1)=0$ and, consequently, $f(kx_1)=0$ for each integer $k$. Obviously, there exists $k$ such that $kx_1\in(x-\varepsilon,x+\varepsilon)$, which is a contradiction.
So the only remaining case is that $x_0>0$. We claim that $x_0$ must be of the form $x_0=\frac1n$ for some $n\in\mathbb N$. To see this, consider the multiples $x_0, 2x_0,\dots,nx_0$, where $n$ is the smallest positive integer such that $nx_0\ge 1$. If the inequality $nx_0>1$ would be strict then $nx_0-1$ would belong to $\operatorname{Ker} f$ and it would be smaller than $x_0$, which contradicts the choice of $x_0$.
When we already know that $x_0=\frac1n$, it is obvious that is suffice to describe the map $f$ on the interval $[0,\frac1n)$. (Since $f$ is periodic with the period $\frac1n$.)
Let us consider interval $[0,\frac1n)$ with the operation $\oplus_n$, the addition modulo $\frac1n$. If we show that $\Zobr f{([0,\frac1n),\oplus_n)}{([0,1),\oplus)}$ is a homomorphism, then we have reduced this to the first case (since $[0,\frac1n),\oplus_n)$ is isomorphic to $S^1$, too). In this case the map $f$ will be $f \colon x\mapsto nx$.
So it only remains to check the definition of homeomorphisms. We get $f(x\oplus_n y)=f(x\oplus y)=f(x)\oplus f(y).$ The first equality holds since the difference between $x\oplus_n y$ a $x\oplus y$ is a multiple of $\frac1n$, and $f(\frac1n)=0$.
Whenever $\Zobr f{\mathbb R}{\mathbb R}$ is such that $f(x+y)=f(x)+f(y)$ and $f(1)\in\mathbb Z$, then it induces in a natural way a homomorphisms $\Zobr{\tilde f}{\mathbb R/\mathbb Z}{\mathbb R/\mathbb Z}$. From discontinuous solution of Cauchy equation with this property we can get many discontinuous homomorphisms from $S^1$ to $S^1$.