Different solutions could be possible depending on what exactly you need. I assume you control at least the statically linked code and can change it if needed.
Way 1
If the statically linked code could export a function (something like set_my_good_var_ptr()), the dynamically loaded module could call that function to pass the address of the needed variable to the former.
Or, perhaps, the statically linked code could provide an interface that the dynamically loaded module could use to provide the get/set callbacks thus allowing to access the variable.
If all this is not suitable for your project (e.g. if you cannot change the code of the dynamically loaded module), the following might help, although I would not call it a good practice.
Way 2
Watch for the kernel module providing that variable to load (see register_module_notifier() function, for example).
Note that the notification function will be called after the module has loaded but before its initialization function is called.
When the notification function is called, you could use kallsyms_lookup_name() or kallsyms_on_each_symbol() to get the address of the variable you need.
This requires CONFIG_KALLSYMS and CONFIG_KALLSYMS_ALL to be set in the kernel configuration. If one or both these options are not set, it is still doable but somewhat more difficult (e.g. find the symbol in the binary file of the module, get the address of the ELF section the symbol belongs to and the offset in it and pass all this to your code, etc.)
After you have found the address of the variable, the statically linked code will have to determine somehow when the variable can actually be used (when it is initialized, etc.). How to do that depends on what the modules involved actually do, I can give no advice for that.