If you are only referring to the abstract circuit representation, then you can just reorder your basis such that all the qubits partaking in CNOTs are made "adjacent" according to your labeling. For example, if the basis is ordered like $1,2,3$, and you want to perform a CNOT between qubits 1 and 3, then you just write something like
$$
CNOT_{1,3} \otimes I_2
$$
where the basis is now ordered $1,3,2$. But if you don't want to reorder the basis, there is also another way of writing the CNOT:
$$
|0\rangle\langle0|\otimes I + |1\rangle\langle1|\otimes X
$$
which could include an identity on the state of the second qubit like
$$
(|0\rangle\langle0|)_1 \otimes I_2 \otimes I_3 + (|1\rangle\langle1|)_1 \otimes I_2 \otimes X_3
$$
This is no longer just a product of unitaries, which is expected since the action of the CNOT should not factorize into product of operations.