You are correct with your doubts as that argument applies only if you know that the sequence converges in the first place.
Now for a proof, assume the contrary, that is: there exists $\epsilon>0$ such that for all $N\in\mathbb N$ there exists $n>N$ with $|x_n-l|\ge\epsilon$.
For $N\in\mathbb N$ let $f(N)$ denote one such $n$.
Now consider the following subsequence $(x_{n_k})$ of $(x_n)$: Let $n_1=f(1)$ and then recursively $n_{k+1}=f(n_k)$. Since $(n_k)$ is a strictly increasing infinite subsequence of the naturals, this gives us a subsqeunece $(x_{n_k})$. By construction, $|x_{n_k}-l|\ge \epsilon$ for all $k$.
On the other hand, by the given condition, there exists a subsubsequence converging to $l$, so especially some (in fact almost all) terms of the subsubsequence fulfill $|x_{n_{k_r}}-l|<\epsilon$ - which is absurd. Therefore, the assumption in the beginning was wrong. Instead, $x_n\to l$.