Is it possible to create a "quote" function that, given a native λ-term, returns its λ-encoded representation?
No, this is not possible, assuming you want to go from an arbitrary lambda term to some first-order AST. 

The lambda calculus is extensional, which means that the lambda calculus cannot distinguish between two lambda-terms which are behaviourally equivalent. Eg, if you have terms implementing quick sort and merge sort, then no other lambda-term can distinguish them, since they are both extensionally the same function. As a result, full quotation is impossible, since it should let you get different source code for those two terms.