So this can be fiddly, but there are solutions. The first thing you should do is diagnose what's happening on NUC when the samba share isn't mounted. If it's cleanly unmounted that's a different case than if it's mounted but hanging because the server went away. If the share is cleanly unmounting, you can just configure it to mount on demand instead of automounting at boot. If instead you find that you can't mount the share because the OS thinks it's already mounted and it's not responding, you'll need the fix below. VNC is a good way to diagnose and manually fix a problem, but ideally you want an automated solution.
My experience is that you can get a "stuck" condition if a samba share goes away when a client system has it mounted. When that happens you need to "umount -l" the share and then remount them manually, which is not ideal. A reboot would work too, but that's even less ideal. The solution I use is to mount the share automatically on demand and (crucially) to unmount it when it's not in use, so if the server goes away the client mostly doesn't notice. There still may be mount issues if the server goes away when the client is actively using it, but that's a harder nut to crack.
My (partial) solution in the form of a pseudo /etc/fstab entry is below (you'll need to replace all the placeholders with your own info, obviously):
//samba.server.ip.address/sharename /local/mountpoint cifs noauto,x-systemd.automount,x-systemd.idle-timeout=5min,_netdev,your_other_mount_options_here 0 0
So the magic is in the middle. The noauto option avoids trying to mount the share at boot (which you want, as it might slow the boot otherwise), and then the x-systemd.automount option automagically mounts the share whenever any program tries to access the mount point. This will work to automount the share on an as needed basis. Crucially the x-systemd.idle-timeout option unmounts the share when no program has accessed it for five minutes, but the automount flag will just reconnect automatically the next time a program needs it. This ensures that, most of the time, if the host goes away the client isn't actively mounted so the next automount is "clean." The _netdev flag makes it clear to the OS that the mount is a network device instead of a local one which can help with some issues if a program tries to access the share before the network is up.
Hope this helps!