How can I find the current position of the stack without a stack pointer in micro controller programming?
As noted in the comments, not using the stack pointer when there is one is really silly and nobody would ever do it in real life. Just like writing a FizzBuzz program.

Yes, you do need knowledge of processor architectures, but that's not the main thing the interviewers want to know. They could find out that by just asking you knowledge questions.

What the question is really about is your approach to problem solving: Do you just say that you don't know? Do you just sit there silently, apparently doing nothing, before announcing that you don't know? Do you start to cry? Do you try to talk (with the interviewers or with yourself) about the problem in order to discuss and/or dismiss the different ways to approach the problem? Do you start to sketch your options on paper or draw a mind-map? These are the things which the interviewers will be looking at, and some of them make a better impression than others.



So here's the uninteresting part of the answer, the algorithm:


Push a known value on the stack, say 0x77.
Scan the whole stack space for this value (you know start and maximum size of the stack).
Once you find 0x77 somwhere, execute a POP instruction and push 0x88.
Check that memory address again. If it changed to 0x88, that's the top of your stack. Go to 6.
If it didn't change, continue scanning and repeat steps 3-5 until you reach the end of the stack or find a changing value.
Execute a POP to clean up after yourself.


Note: If you don't know the location and size of the stack, you could also scan the whole address space, which likely isn't that big in a micro controller. You just need to be careful that your implementation uses no RAM, lest it places the searched value somewhere outside of the stack and confuses itself.