Handles are pretty stupid but they are the easiest way to handle this situation in Gamestudio. I don't think you can store a pointer to an engine object in a variable in Lite-C, although I may be wrong.
At any rate, another option for you to consider is to define an object pointer in your entity's action. Every entity that runs said action should thus have access to its own proper object pointer.