Proving that a sequence such that $|a_{n+1} - a_n| \le 2^{-n}$ is Cauchy
As you said, you want to show that for any $\epsilon>0$ there is some $n_0\in\Bbb N$ such that $|a_m - a_n|<\epsilon$ whenever $m, n \ge n_0$. The trick is to figure out how big an $n_0$ you’re going to need to make sure that $|a_m-a_m|<\epsilon$ no matter how far apart $m$ and $n$, as long as they’re both at least $n_0$. Okay, suppose that we look at $|a_m-a_n|$ when $m$ and $n$ are not necessarily consecutive. There’s no harm in assuming that $m\le n$; then $k=n-m\ge 0$, and we’re looking at $|a_m-a_{m+k}|$. We only have a handle on the size of this number when $k=1$: if $k=1$, $|a_m-a_{m+k}|\le 2^{-m}$. But we also have the triangle inequality:
$$\begin{align*} |a_m-a_{m+k}|&=|(a_m-a_{m+1})+(a_{m+1}-a_{m+2})+\ldots+(a_{m+k-1}-a_{m+k})|\\ &\le|a_m-a_{m+1}|+|a_{m+1}-a_{m+2}|+\ldots+|a_{m+k-1}-a_{m+k}|\\ &<2^{-m}+2^{-(m+1)}+\ldots+2^{-(m+k-1)}\\ &<\sum_{k\ge m}\frac1{2^k}\\ &=\frac{\frac1{2^m}}{1-\frac12}\\ &=\frac1{2^{m-1}}\;. \end{align*}$$
Thus, if $m,n\ge n_0$, we automatically have $|a_m-a_n|<\dfrac1{2^{m-1}}\le\dfrac1{2^{n_0-1}}$. If we choose $n_0$ big enough so that $\dfrac1{2^{n_0-1}}\le\epsilon$, we’ll be in business. Is this always possible? Sure: just make sure that $2^{n_0-1}\ge\dfrac1\epsilon$, i.e., that $n_0\ge\log_2\dfrac2\epsilon$; this is certainly always possible.
Hint: Suppose $m>n$, then $$|a_{m}-a_{n}| = |a_{m}-a_{m-1}+a_{m-1}-a_{m-2}+a_{m-2}-a_{m-3}+\cdots+a_{n+1}-a_n|$$ $$ \leq |a_{m}-a_{m-1}|+|a_{m-1}-a_{m-2}|+|a_{m-2}-a_{m-3}|+\cdots+|a_{n+1}-a_n| $$ $$ \leq \sum_{i=n}^{m-1}2^{-n} $$
Can you see how to proceed?
We just need $|x_{n+1}-x_n|\leq a_n$ where $a_n$ is a sequence such that $\sum_na_n<+\infty$. Indeed, for $m,n\in\Bbb N$, and denoting $S_N:=\sum_{j=1}^Na_j$, we have $$|x_{m+n}-x_n|\leq \left|\sum_{j=m}^{m+n-1}(x_{j+1}-x_j)\right|\leq \sum_{j=m}^{m+n-1}\left|x_{j+1}-x_j\right|\leq |s_{m+n-1}-s_{m-1}|,$$ and we conclude using the fact that $\{S_n\}$ is Cauchy. Actually, the condition is necessary.