Sufficient condition for convergence of a real sequence
First notice that your condition implies that your sequence is bounded.
Indeed, if $(x_n)$ is unbounded, we can find a subsequence $(x_{n_k})$ such that $|x_{n_k}|\ge k$. This subsequence does not have a convergent subsequence.
So we know that $(x_n)$ is bounded and it is not convergent. This means that $$M=\limsup x_n > \liminf x_n =m.$$ (Both $M$ and $m$ are real numbers, since $(x_n)$ is bounded.)
We know (from the properties of limit superior and limit inferior) that there is a subsequence $(x_{n_k})$ which converges to $M$ and there is a subsequence $x_{n_l}$ which converges to $m$. (And every subsequence of any of these two subsequences has, of course, the same limit $M$ resp. $m$.)
We have found two subsequences with different limits, which contradicts your assumptions about the sequence $(x_n)$.
Suppose $x_n$ does not converge to $x$, but every subsequence of $x_n$ has a sub-subsequence which converge to $x$.
Since $x_n$ does not converge to $x$ we must be able to find a subsequence such that every term is more than $\epsilon$ away from $x$ for some $\epsilon>0$, but clearly this does not have a sub-subsequence which converges to $x$, by definition.